1. Technical Field
The present application relates generally to an improved data processing system and method. More specifically, the present application is directed to a system and method for preventing Internet Protocol (IP) spoofing and facilitating parsing of private data areas in system area network connection requests.
2. Description of Related Art
It is important in networking protocols that protections be provided for ensuring that only privileged or trusted applications are able to access certain resources. In other words, it is important that the networking protocol be able to rely on the fact that certain resources may be trusted to not be accessible by applications that may intentionally or unintentionally corrupt the operation of the network or data processing systems connected to the network.
For example, in a Transmission Control Protocol (TCP) network, such as the Internet, a non-privileged application is generally not capable of forging a source Internet Protocol (IP) address and is typically prevented form using certain source ports. Furthermore, a non-privileged client is not allowed to bind, i.e. establish a software link, to any address and is not allowed to send raw Ethernet packets, i.e. data packets that are not processed by the TCP/IP programming interface, to bypass the host stack. This is because raw sockets are not accessible by non-privileged applications. As a result, the TCP daemon process is able to assume as part of the IP connection setup that the remote IP address supplied is valid, unless a forger, i.e. a non-privileged application presenting an unauthentic IP address, has root access on the remote client.
In a system area network environment, such as an InfiniBand™ network architecture environment, TCP/IP communication is facilitated through a number of mechanisms described in the InfiniBand™ Architecture Specification Volumes 1 and 2, version 1.2, available from the InfiniBand™ Trade Association at www.infinibandta.org/specs/. It is assumed for purposes of the discussion of the present invention that one is familiar with the InfiniBand™ specification, which is readily available from the InfiniBand™ Trade Association, and thus, a detailed explanation of all of the mechanisms involved in TCP/IP communication over InfiniBand™ networks is not provided herein.
When an application requires IP addresses to be used during connection setup, such as for a TCP/IP connection over InfiniBand™ network environment, the IP addresses are usually communicated in the private data area of the Communication Management request (CM REQ) message. However, this does not implement the semantics of a TCP/IP connection establishment since the remote IP address presented to the listener that receives the CM REQ message cannot be assumed to be authentic. In other words, the same protection mechanisms used with TCP/IP networks that allow the TCP daemon to trust remote IP addresses supplied by remote clients are not present with regard to the private data area of CM REQ messages in the InfiniBand™ network. As a result, a forger may insert an unauthentic IP address in the private data area of a CM REQ message and thereby obtain unauthorized access to remote system resources. Thus, there is no way to know that a user mode application simply has not made up an IP address and submitted it as part of normal CM REQ private data. This is because, in the InfiniBand™ network, a user space consumer may supply any data it wants to be used as CM private data. Thus, it is possible that the user space consumer may potentially exploit this to perform IP spoofing. That is, a user space consumer may place an unauthorized IP address in the private data area and thereby be able to establish a communication connection and access remote resources to which the user space consumer should not have access.